Pix主题适配威言威语大神的走心评论 Touching Comments插件
本文是《技术相关(共47篇)》目录的第 47 篇。阅读本文前,建议先阅读本文前3篇文章:
威言威语大神的走心评论 Touching Comments插件在半年内,我前前后后安装了3次,也卸载了3次,究其原因很简单,界面很不适配我的Pix主题。但这个功能实在是喜欢,前段时间想利用AI写一个自己的暖心评插件,但是不知道为何,始终加载不了插件里的js和css,真的是技不如人。前天晚上又安装了大神的这个插件,经过一天两晚的公关,终于适配了主题。
PS:经大神指点,插件设置里是有后台功能的,我没有注意,并且默认不会将管理员评论入选暖心评,PIX主题的同学可以忽计后面添加后台功能的代码,那个算我熟悉代码练手了。
首先适配主题:
1、主要是修改pix/inc/assets/css/main.css,由于本次修改的地方实在是太多,强烈建议修改前备份main.css 文件。我提供修改后的main.css,覆盖源文件即可。
2、修改大神插件里的touching-comments/css/touching.css文件,将
.touching-comments-list img.avatar{vertical-align:middle;}
替换如下,这个主要是给头像添加旋转以及边框特效效果。
.touching-comments-list .avatar{float: left;position: absolute;background: #f3f3f3;top: 0.75rem;left: -1.625rem;padding: 0.5rem;box-shadow: -1px 0 1px rgba(0,0,0,0.1) inset;border-radius: 50%;transition: transform 0.5s ease;}
.touching-comments-list .avatar:hover {transform: rotate(360deg);}
自此,适配结束。
以下是练手代码,用PIX主题的同学可以不用看了。
默认前台心形按钮:
新增后台文字按钮:
新增过程如下:
1、修改大神插件touching-comments/touching.php,大概在40行:
//评论中展示“入选走心评论”的标识
function touching_comments_show( $comment_text, $comment = null ) {
前面插入以下代码:
// 在后台评论管理页面添加"入选暖心评"按钮
add_filter('comment_row_actions', 'touching_comments_admin_row_actions', 10, 2);
function touching_comments_admin_row_actions($actions, $comment) {
// 检查用户权限
if (!current_user_can('level_10')) {
return $actions;
}
// 获取当前评论的karma值
$karma = $comment->comment_karma;
// 构建nonce URL
$nonce = wp_create_nonce('touching_comments_admin_karma');
$url = admin_url('admin-ajax.php?action=touching_comments_admin_karma&comment_id=' . $comment->comment_ID . '&comment_karma=' . ($karma == 1 ? 0 : 1) . '&_wpnonce=' . $nonce);
// 根据当前karma值设置按钮文本
$button_text = $karma == 1 ? __('取消暖心评', 'touching-comments') : __('入选暖心评', 'touching-comments');
// 添加按钮到评论操作行
$actions['touching_comments'] = '<a href="' . esc_url($url) . '" class="touching-comments-admin-button" data-comment-id="' . $comment->comment_ID . '" data-comment-karma="' . $karma . '">' . esc_html($button_text) . '</a>';
return $actions;
}
// 处理后台评论管理页面的AJAX请求
add_action('wp_ajax_touching_comments_admin_karma', 'touching_comments_admin_karma_request');
function touching_comments_admin_karma_request() {
// 检查nonce
if (!isset($_GET['_wpnonce']) || !wp_verify_nonce($_GET['_wpnonce'], 'touching_comments_admin_karma')) {
wp_send_json_error(array('message' => __('安全检查失败', 'touching-comments')));
}
// 检查权限
if (!current_user_can('level_10')) {
wp_send_json_error(array('message' => __('权限不足', 'touching-comments')));
}
// 获取参数
$comment_id = isset($_GET['comment_id']) ? intval($_GET['comment_id']) : 0;
$comment_karma = isset($_GET['comment_karma']) ? intval($_GET['comment_karma']) : 0;
// 验证参数
if ($comment_id <= 0) {
wp_send_json_error(array('message' => __('评论ID无效', 'touching-comments')));
}
if ($comment_karma !== 0 && $comment_karma !== 1) {
wp_send_json_error(array('message' => __('karma值无效', 'touching-comments')));
}
// 更新评论karma值
$comment_data = array(
'comment_ID' => $comment_id,
'comment_karma' => $comment_karma
);
// ✅ 关键修复:执行评论更新
if (wp_update_comment($comment_data)) {
wp_send_json_success(array(
'message' => __('评论状态已更新', 'touching-comments'),
'comment_id' => $comment_id,
'comment_karma' => $comment_karma
));
} else {
wp_send_json_error(array('message' => __('更新评论失败', 'touching-comments')));
}
}
// 在后台加载必要的JS和CSS
add_action('admin_enqueue_scripts', 'touching_comments_admin_scripts');
function touching_comments_admin_scripts($hook) {
// 只在评论管理页面加载
if ($hook != 'edit-comments.php') {
return;
}
// 注册并本地化JS
wp_enqueue_script('touching-comments-admin-js', plugin_dir_url(__FILE__) . 'js/touching-admin.js', array('jquery'), '1.1.6', true);
wp_localize_script('touching-comments-admin-js', 'touchingCommentsAdmin', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('touching_comments_admin_karma')
));
}
2、在touching-comments/js目录下新建touching-admin.js,内容如下:
jQuery(document).ready(function($) {
$('a.touching-comments-admin-button').on('click', function(e) {
e.preventDefault();
var $button = $(this);
var commentId = $button.data('comment-id');
var commentKarma = $button.data('comment-karma');
var newKarma = commentKarma == 1 ? 0 : 1;
$.ajax({
url: touchingCommentsAdmin.ajaxurl,
type: 'GET',
data: {
action: 'touching_comments_admin_karma',
comment_id: commentId,
comment_karma: newKarma,
_wpnonce: touchingCommentsAdmin.nonce
},
success: function(response) {
if (response.success) {
// 更新按钮文本
if (newKarma == 1) {
$button.text('取消暖心评');
$button.data('comment-karma', 1);
} else {
$button.text('入选暖心评');
$button.data('comment-karma', 0);
}
}
},
error: function(xhr, status, error) {
// 不做任何处理
}
});
});
});
所有过程结束。
刘郎
一场带着温度的自我剖白 把婚姻里的拉扯 认知鸿沟的痛感 还有对未来的矛盾心境都摊开在了读者面前 尤其是那句“婚姻从厚重变得渺小” 薄薄的离婚证确实承载了太多茶米油盐的重量 而认知差带来的“指鹿为马”式疲惫 比争吵更像钝刀割肉
刘郎
这个插件挺有创意的 不错👍 即是对评论者的评论认可 又是对自己评论区的升华
似水流年
是的,大神这个插件真的不错。
obaby
工程量太大了,哈哈哈。感觉跟重写差不多
似水流年
main.css的代码太长了,打包上传,不显示了。并且改的太多了,有些原有细微的功能消失了,比如文章内容的字体和评论字体就不一样了,文字高亮颜色也没有了,还得慢慢修改。
全局变量
所以这个走心评论是怎么样一个入选依据呢?是自动入选还是?让ai评分还是?
似水流年
全靠我手工点击😹
比如我现在点你一下。
威言威语
那个在后台评论页面直接操作加入走心评论这个功能插件是有的。默认没有开启,插件的设置页面:后台评论快捷操作(Backend comments quick operations),开启之后,在后台评论页面就能直接看到爱心图标了点击就能加入或者取消了。
似水流年
我错了🤣没注意这个,本篇就当自己熟悉下代码了。😂